//
//  RootViewController.swift
//  XinLang
//
//  Created by 张辉 on 16/5/10.
//  Copyright © 2016年 张辉. All rights reserved.
//

import UIKit
import HMRefresh


/// Type 'RootViewController' does not conform to protocol 'UITableViewDataSource'
class RootViewController: UIViewController {
    //MARK:---懒加载tableview
   lazy var tableview = UITableView(frame: CGRectZero, style: .Plain)
    // 刷新控件 - 不是所有的子控制器都包含刷新控件
   lazy var refreshControl = HMRefreshControl()
    /// 上拉刷新视图
    lazy var pullupView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.Gray)
    
   
    ///记录访客视图
    var visitorView :VisitorView?
    
    override func loadView() {
        ///加载访客视图
        
        //加载表格视图
//        userLogin ?  setupTableView() :setupVisitorView()
      
        UserAccount.sharUserAccount.isLogin  ?setupTableView() :setupVisitorView()
        
        }
    
    override func viewDidLoad() {
        super.viewDidLoad()
       
        
        // 如果没有登录注册通知
        if UserAccount.sharUserAccount.isLogin {
            
            loaddata()
            
        } else {
            NSNotificationCenter.defaultCenter().addObserver(
                self,
                selector:"loginSuccessed",
                name: CZWeiBoLoginSuccessedNotification,
                object: nil)
        }

    
        
     
    }

    // MARK: - 公共方法
    /// 加载数据，供子类具体实现
    func loaddata(){
    
    
    }
    
    //登录成功监听方法
    
  @objc  private func loginSuccessed(){
    
        view = nil

        // 注销通知
        NSNotificationCenter.defaultCenter().removeObserver(self, name: CZWeiBoLoginSuccessedNotification, object: nil)
    
    
    }
    
    
}
extension RootViewController :visitorViewDelegate {


    ///代理协议 的方法
    //登录
    func visitorViewLoginButton() {
        let oautjVc = OAuthViewController()
        
        let Nav = UINavigationController(rootViewController: oautjVc)
        
        presentViewController(Nav, animated: true, completion: nil)
        print("zhuce")
    }
    
    //注册
    func visitorViewRegisterButton() {
       
        
        
    }


}


// MARK: - 设置界面
extension RootViewController  {
    
        //设置访客视图
    private func setupVisitorView(){
        
        visitorView = VisitorView()
        view = visitorView
      //设置代理
         visitorView?.delegate = self
      //设置左侧 右侧按钮
        
     navigationItem.leftBarButtonItem = UIBarButtonItem.init(
        title: "注册",
        style: .Plain,
        target: self,
        action: #selector(RootViewController.visitorViewRegisterButton))
        
        
        navigationItem.rightBarButtonItem = UIBarButtonItem.init(
            title: "登录",
            style: .Plain,
            target: self,
            action: #selector(RootViewController.visitorViewLoginButton))
    
    }
  
   
    
    /// 设置表格视图
    private func setupTableView() {
        view = tableview
        
       
        // 设置数据源
        tableview.dataSource = self
        tableview.delegate = self
    }
    
    /// 设置刷新控件
    /// 需要刷新控件的子控制器单独调用 `setupRefreshControl`
    /// 私有函数不能被子类`继承`
    func setupRefreshControl() {
        
        tableview.addSubview(refreshControl)
        
        // 设置下拉刷新视图
        refreshControl.pulldownView = RefreshView.refreshview()
        refreshControl.normalString = "下拉起飞"
        refreshControl.pullingString = "放开起飞"
        refreshControl.refreshingString = "正在起飞"
        refreshControl.lastRefreshString = "末次 "

        
        // 设置刷新控件的监听方法
       refreshControl.addTarget(self, action: #selector(RootViewController.loaddata), forControlEvents: .ValueChanged)
  
    }
}


extension RootViewController:UITableViewDataSource,UITableViewDelegate{
   
   
    
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        return UITableViewCell()
    }


}
